home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-05-13 | 3.6 KB | 86 lines | [TEXT/KAHL] |
- The following changes to the Brain interface have been made in Bolo 0.99.6:
-
-
- 1. Bug fixes
-
- These changes apply to existing version 2 Brains as well as new version 3
- ones.
-
- • Brains no longer get told about the location of all refuelling bases,
- unless the game initiator sets the "Give Brains an advantage" option, in
- which case the Brains always get told the positions of every tank, pillbox,
- and refuelling base. In other words, this is now a deliberate option, not
- an accidental mistake.
-
- • For refueling bases, the 'direction' value will be zero if the base is dead
- and capturable, and non-zero otherwise. Unlike pillboxes, it does not tell
- you the exact strength of the base, only a rough approximation, but it is
- enough to help you decide when it is time to drive onto the base.
-
- • Brains no longer get told about the position of incoming parachutes. In
- version 2 they used be reported as OBJECT_BUILDMAN, which is sort-of correct,
- but misleading.
-
-
- 2. Additional information
-
- If a Brain's CODE resource is compiled as 1003, this indicates to Bolo that
- it was compiled with the version 3 header file and understands the version 3
- extensions. Bolo will still load existing 1002 Brains, but only the bug-fixes
- above will apply.
-
- If you wish, it is acceptable to publish BBRN files containing both an ID
- 1002 and an ID 1003 resource, if you want to maintain backwards compatibility
- to old copies of Bolo. Be advised, though, that if you do this, you should
- take care to ask people what version of Bolo they are running when they
- report bugs to you, or you won't know which version of you Brain they are
- complaining about.
-
- • New object id: OBJECT_PARACHUTE, used to indicate a new builder parachuting
- in.
-
- • Pointer to entire visible world, like map overview window.
- The array is 256x256 squares, arranged as horizontal rows, top left square
- of the map first, bottom right last. squares that have not been seen at
- all contain the value TERRAIN_UNKNOWN. Squares that have been seen in the
- past contain the value indicating whatever terrain was seen there last.
- There are also two flags (in addition to the mine bit). TERRAIN_TANK_VIS
- indicates whether the square is currently visible from the tank, and
- TERRAIN_PILL_VIS indicates whether the square is currently visible from
- one of your pillboxes. These flags tell you whether what you're seeing
- is 'live' information, or just the last recorded terrain at that location.
-
- • GAMEINFO structure, giving information about the game options, as is
- given to BoloTrackers:
-
- typedef struct { u_long machineid; u_long timestamp; } GAMEID;
-
- enum { GameType_open=1, GameType_tournament, GameType_strict_tment };
-
- #define GAMEINFO_HIDDENMINES 0x80
- #define GAMEINFO_ALLMINES_VISIBLE 0xC0
-
- typedef struct
- {
- u_char36 mapname;
- GAMEID gameid;
- BYTE gametype;
- BYTE hidden_mines;
- // has the value GAMEINFO_HIDDENMINES or GAMEINFO_ALLMINES_VISIBLE
- BYTE allow_AI;
- BYTE assist_AI;
- long start_delay;
- long time_limit;
- } GAMEINFO;
-
- The GAMEINFO structure gives you the information about the options that
- the game initiator selected, including the map name. Some Brain writers
- have asked for more information, like "a complete copy of the original
- map before any changes were made. Well, Bolo doesn't keep around a spare
- copy of "the original map before any changes were made" and never has.
- If it did, then it would take up extra unnecessary memory space and joining
- a game would take twice as long because Bolo would have to send two maps to
- you, the current one and the original state. Brain writers are just going
- to have to make do with the same information that human players get in this
- case -- the name of the map.
-